core: Add ot_util_variant_take_ref for older GLib versions
authorColin Walters <walters@verbum.org>
Wed, 9 Nov 2011 11:13:26 +0000 (06:13 -0500)
committerColin Walters <walters@verbum.org>
Wed, 9 Nov 2011 11:13:26 +0000 (06:13 -0500)
libostree/ostree-core.c
libotutil/ot-variant-utils.c
libotutil/ot-variant-utils.h

index 9a05e91ee2773ca26797edfc7dc8fd0c963a1d00..d65636c7d5201bf9d6ccb25e01bbbd1105905628 100644 (file)
@@ -358,7 +358,7 @@ ostree_parse_metadata_file (const char                  *path,
 
   ret = TRUE;
   *out_type = ret_type;
-  *out_variant = g_variant_take_ref (ret_variant);
+  *out_variant = ot_util_variant_take_ref (ret_variant);
   ret_variant = NULL;
  out:
   if (ret_variant)
index e0d0a75b584b70c9abf21e9e24e22a4ed2899643..837e6ec41e3276d1d8415fe29bc76ac714cc6111 100644 (file)
@@ -75,6 +75,18 @@ ot_util_variant_save (GFile *dest,
   return ret;
 }
 
+GVariant *
+ot_util_variant_take_ref (GVariant *variant)
+{
+#if GLIB_CHECK_VERSION(2,32,0)
+  return g_variant_take_ref (variant);
+#else
+  if (g_variant_is_floating (variant))
+    return g_variant_ref_sink (variant);
+  return variant;
+#endif
+}
+
 gboolean
 ot_util_variant_map (GFile *src,
                      const GVariantType *type,
index 0a9464b648e4b1d568b06cc4ab0068f0959c3720..33850a33599111ca4db35150908cf30f922d5ec9 100644 (file)
@@ -28,6 +28,8 @@ G_BEGIN_DECLS
 
 GHashTable *ot_util_variant_asv_to_hash_table (GVariant *variant);
 
+GVariant * ot_util_variant_take_ref (GVariant *variant);
+
 gboolean ot_util_variant_save (GFile *dest,
                                GVariant *variant,
                                GCancellable *cancellable,